在學習 AI 的過程中,array 以及 dataframe 的處理非常困擾著老頭,以 array 來說,Tensorflow, pytorch 和 numpy 都提供了處理 array 的 API,但是它們彼此之間並不一致。例如計算 array 的平均數,它們的寫法是這樣的:
numpy: mean(a, axis=None, dtype=None, out=None, keepdims=<no value>)
torch: mean(input, dim, keepdim=False, out=None)
tensorflow: reduce_mean(input_tensor, axis=None, keepdims=None, name=None,
reduction_indices=None, keep_dims=None)
有點像,又不全然一樣,老頭這個年紀的人,記憶力早已大不如前,寫程式的時候往往得查 API 的文件,找到正確的用法,螢幕在不同的視窗間切來切去,邏輯思路被打得支離破碎!老頭常想,如果能有個統一的 API ,將是件多美好的事。
在 8 月中旬的時候,看到網路上「Consortium for Python Data API Standards」成立的公告(註一),確實讓我興奮了一下。這個聯盟由 Quansight 發起,初期的贊助廠商有 Intel, Microsoft, Google Research 及 D. E. Shaw group,他們的目標之一是制定處理 array (或可稱為 tensor) 和 dataframe 的 API 標準,不要再像現在一樣零零落落。而另一個更宏大的理想,是建立一個溝通平台,讓各個生態系統及專案 (如上述的 tensorflow, pytorch, numpy 等) 在這個平台上相互協調,未來在各自進版之時,皆能遵循一致的 API 標準。
*Today, we are announcing the Consortium for Python Data API Standards, which aims to tackle this fragmentation by developing API standards for arrays (a.k.a. tensors) and dataframes. We aim to grow this Consortium into an organization where cross-project and cross-ecosystem alignment on APIs, data exchange mechanisms and other such topics happens.
*
目前他們的規劃的時程為:
8 月 17: announcement blog post and tooling and governance repositories made public
9 月 15: 公布 array API RFC 並開始社群複審 (community review)
11 月 15: 公布 dataframe API RFC 並開始社群複審
看樣子還有很長一段路要走,但總是給了老頭一絲希望,期待在 2021 年結束之前,能看到 Tensorflow 及 Pytorch 這兩個主要的 AI framework 能夠支援 Common API。